![DockerのRegistryとPrivate registryについて](https://devio2023-media.developers.io/wp-content/uploads/2021/05/bg5.png)
DockerのRegistryとPrivate registryについて
こんにちは、クラスメソッドのキム・ジェウク(Kim Jaewook)と申します。今回はDockerのRegistryとPrivate registryについて話そうと思います。以前、Dockerについて書いたBlogもありますので、興味がある方はこちらのBlogも読んでください。
Docker Registryは何?
Registryは、様々なDocker Imageが保存されているスペースです。
RegistryでダウンロードしたDocker Imageは静的な状態ですので、コンテナ化して実行する必要があります。つまり、Registryとは、誰でもDocker Imageを作成して、pushすることができ、pushされたDocker Imageは他の人々に共有できるのがregistryだと考えたらいいと思います。
代表的にはDocker Hubがあります。このDockerHubには、自分が作成したDocker Imageをアップロードすることができますし、他の人たちがアップローダーどしたDocker Imageをダウンロードすることもできます。
Docker Private Registryは?
Docker HubにPrivate imageをアップロードするのは制限があります。 個人ユーザの場合、一つのイメージのみprivateが可能ですので、Organizationの場合は費用を支払わなければ使用できません。 こんな時に使用できるPrivate Registry環境があります。
つまり、自分だけのregistryを作成して、自分のサーバーで管理することができます。これが「Private Registry」です。
Private Registryを作成してみよう
まず、registryにpushをするためには、Docker Imageがひとつ必要です。
まず、runコマンドでリポジトリを作成します。
ここで、リポジトリの場合、もうひとつのサーバーを構築するのではなく、Docker Imageを入れて管理するスペースです。registryのポートは5000にして、コマンドの最後に「registry」を入れたらリポジトリが作成されます。
続いて、Linkにv2とapiバージョンを入れると、要請に応じた応答が出てきます。現在、リポジトリはapiを通じてpull、push通信を行っていますので、apiを使って管理できます。
次に、tagを修正しましょう。リポジトリに保存するためにリポジトリのポートを5000にします。
もともとは、ipやポートを入力する必要がありますが、「docker info」を見るとindexというものがあって、ここで「どのリポジトリに何が保存されているのか」すべて保存されていますので、Indexから勝手に要請して使用します。そのためipやポートを入力する必要はありません。
では、pushをして、リポジトリにDocker Imageをアップロードしましょう。
それでは、再びフルをするために、以前にあったDocker Imageをすべて削除しましょう。Docker Imageを削除すると、リポジトリを除く、すべてのDocker Imageが削除されます。
そして、プルコマンドでダウンロードします。
最後にrunコマンドで、ダウンロードしたDocker Imageを実行させると、問題なく起動できます。
最後に
Private RegistryはDocker HubでいちいちDocker Imageを探したり、ダウンロードしたりする必要がなく、自分が使いたいDocker Imageを保存させ、いつでも使用できる便利さがあります。今回はこのPrivate Registryをどう作成して使うのかについて話しました。Dockerを勉強する方々に役に立ったらいいと思います。